/**
 * 
 */
package it.robertobifulco.ias.rolemanager;

/**
 * The interface specifies the operations requested to a repository to act as the role repository for the
 * IAS. Any type of repository can accomplish this quest, it could be a xml file, a dbms, a web site.
 * 
 * @author Roberto Bifulco oltremago@gmail.com
 *
 */
public interface RoleRepository {
	
	/**
	 * Extract the operations identificator associated with the given Role name
	 * 
	 * @param roleName
	 * @return an array of operations identificator
	 * @throws RoleUndefinedException if the given role is not found in the repository
	 */
	public String[] getRoleOperations(String roleName) throws RoleUndefinedException;
	
	/**
	 * Extract all defined roles from the repository
	 * 
	 * @return an array of roles name
	 */
	public String[] getRoles();

}
